/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Manejadores;

import Excepciones.FechaIncorrectaException;
import Excepciones.FechaSuperiorException;
import Excepciones.HoraIncorrectaException;
import Logica.Accion;
import Logica.Reunion;

import Persistencia.ADOReunion;
import java.util.Date;
import java.util.Iterator;
import java.util.LinkedList;
import javax.swing.table.DefaultTableModel;

/**
 *
 * @author Matias
 */
public class ManejadorAgregarReuniones {

    ADOReunion accesoReunion;

    public ManejadorAgregarReuniones() {

        accesoReunion = new ADOReunion();
    }
//
//    public DefaultTableModel cargarTablaTipoReunion() {
//
//        DefaultTableModel modeloResultado = new javax.swing.table.DefaultTableModel(
//                new Object[][]{},
//                new String[]{
//                    "ID", "Nombre"
//                }){
//                    @Override
//                  public boolean isCellEditable(int fila, int columna) {
//                 return false; //Con esto conseguimos que la tabla no se pueda editar
//   }
//                
//                };
//
//        LinkedList lista = this.obtenerTipoReunion();
//        Iterator iter = lista.iterator();
//
//
//
//        while (iter.hasNext()) {
//            TipoReunion tr = (TipoReunion) iter.next();
//            String[] o = {"" + tr.getId(), "" + tr.getNombre()};
//            modeloResultado.addRow(o);
//            // System.out.println(modeloResultado.getRowCount());
//        }
//        return modeloResultado;
//    }
//
//    public DefaultTableModel cargarTablaReunion() {
//
//        DefaultTableModel modeloResultado = new javax.swing.table.DefaultTableModel(
//                new Object[][]{},
//                new String[]{
//                    "ID", "Nombre", "Fecha", "Inicio", "Fin", "Tipo de Reunion"
//                }){
//                    @Override
//                  public boolean isCellEditable(int fila, int columna) {
//                 return false; //Con esto conseguimos que la tabla no se pueda editar
//   }
//                
//                };
//
//        LinkedList lista = this.obtenerReuniones();
//        Iterator iter = lista.iterator();
//            
//
//
//        while (iter.hasNext()) {
//            Reunion r = (Reunion) iter.next();
//            String[] o = {"" + r.getId(), "" + r.getNombre(), "" + r.getFecha(), "" + r.getHoraDesde(), "" + r.getHoraHasta(), "" + r.getTipoReunion().getNombre()};
//            modeloResultado.addRow(o);
//            // System.out.println(modeloResultado.getRowCount());
//        }
//        return modeloResultado;
//    }
//
//    public LinkedList obtenerTipoReunion() {
//        LinkedList lista = accesoReunion.obteberTiposReuniones();
//
//
//        return lista;
//
//    }
//
//    public LinkedList obtenerReuniones() {
//        LinkedList lista = accesoReunion.obtenerReuniones();
//
//        return lista;
//    }
//
//    public boolean agregarTipoReunion(String nombre) // Busca si existe un tipo con el mismo nombre y si no existe lo agrega
//    {
//        TipoReunion tr = new TipoReunion();
//        LinkedList lista = new LinkedList();
//
//        lista = accesoReunion.obteberTiposReuniones();
//
//
//        if (!lista.isEmpty()) {
//            Iterator it = lista.iterator();
//            while (it.hasNext()) {
//                tr = (TipoReunion) it.next();
//                if (tr.getNombre().equals(nombre)) {
//                    //Si existe devuelvo false
//                    return false;
//                }
//            }
//        }
//        tr.setNombre(nombre);
//        accesoReunion.insertarTipoReunion(tr); // Agrego el nuevo tipo de reunion y retorno true
//        return true;
//    }
//
//    public boolean agregarReunion(String nombre, String fecha, String hd, String hh, String tipo) {
//        Reunion r = new Reunion();
//        r.setFecha(fecha);
//        r.setHoraDesde(hd);
//        r.setHoraHasta(hh);
//        r.setNombre(nombre);
//        TipoReunion tr = new TipoReunion();
//        tr = accesoReunion.obteberTiposReunionesByName(tipo);
//        r.setTipoReunion(tr);
//
//        LinkedList lista = new LinkedList();
//
//        lista = accesoReunion.obtenerReuniones();
//        Reunion r2;
//        if (!lista.isEmpty()) {
//            Iterator it = lista.iterator();
//            while (it.hasNext()) {
//                r2 = (Reunion) it.next();
//
//                if (r2.getNombre().equals(nombre) && r2.getHoraDesde().equals(hd) && r2.getHoraHasta().equals(hh)) {
//                    //Si existe devuelvo false
//                    return false;
//                }
//            }
//        }
//
//        accesoReunion.insertarReunion(r); // Agrego el nuevo tipo de reunion y retorno true
//        return true;
//
//    }
//    //Metodo que valida que la hora ingresada es correcta
//
//    public void validarHora(String hora) throws HoraIncorrectaException {
//
//        String[] splitFecha = hora.split(":");
//
//        if (Integer.valueOf(splitFecha[0]) > 24 || Integer.valueOf(splitFecha[0]) < 0) {//Valida la hora
//
//            throw new HoraIncorrectaException();
//        }
//        if (Integer.valueOf(splitFecha[1]) > 59 || Integer.valueOf(splitFecha[0]) < 0) {//Valida los minutos
//
//            throw new HoraIncorrectaException();
//        }
//
//    }
//    //Metodo que valida que la hora de inicio sea menor a la de fin
//
//    public void validarHoraMayorMenor(String horaIni, String horaFin) throws HoraIncorrectaException {
//
//        String[] splitFechaIni = horaIni.split(":");
//        String[] splitFechaFin = horaFin.split(":");
//
//        if (Integer.valueOf(splitFechaIni[0]) > Integer.valueOf(splitFechaFin[0])) {
//
//            throw new HoraIncorrectaException();
//        } else if (Integer.valueOf(splitFechaIni[0]) == Integer.valueOf(splitFechaFin[0]) && Integer.valueOf(splitFechaIni[1]) >= Integer.valueOf(splitFechaFin[1])) {
//
//            throw new HoraIncorrectaException();
//        }
//
//    }
//
//    public void validarDiasMesFecha(String fecha) throws FechaIncorrectaException {
//
//        String decenaDia = String.valueOf(fecha.charAt(0));
//        String unidadDia = String.valueOf(fecha.charAt(1));
//        String decenaMes = String.valueOf(fecha.charAt(3));
//        String unidadMes = String.valueOf(fecha.charAt(4));
//        String[] splitFecha = fecha.split("-"); // tomo el ,es, para ver si es febrero y validar diferente
//
//        if (Integer.valueOf(splitFecha[1]) == 2) {// si el mes es 2 es febrero
//            if ((Integer.parseInt(decenaDia) > 2) || (Integer.parseInt(unidadDia) > 8 && Integer.parseInt(decenaDia) <= 2)) {
//                throw new FechaIncorrectaException();
//            }
//        } else {
//            if (Integer.parseInt(decenaDia) > 3 || Integer.parseInt(decenaMes) > 1
//                    || (Integer.parseInt(decenaDia) == 3 && Integer.parseInt(unidadDia) > 1) || (Integer.parseInt(decenaMes) == 1 && Integer.parseInt(unidadMes) > 2)) {
//                throw new FechaIncorrectaException();
//            }
//
//        }
//
//
//    }
}
